﻿using DocumentFormat.OpenXml.Wordprocessing;
using Magicodes.ExporterAndImporter.Core;
using Org.BouncyCastle.Crypto;
using System;
using System.Collections.Generic;
using System.Text;

namespace NP.BPMReportPlatform.Reports.ZPSPXT.Dtos
{
    public class ZPSPXTDto
    {
        /// <summary>
        /// 流程实例编号
        /// </summary>
        [ExporterHeader("流程编号")]
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public DateTime? ProcessStartTime { get; set; }
        [ExporterHeader("申请时间")]
        public string ProcessStartTimeStr { get; set; }

        /// <summary>
        /// 添加用户名称
        /// </summary>
        [ExporterHeader("申请人")]
        public string ProcessStartUserName { get; set; }

        /// <summary>
        /// 流程状态
        /// </summary>
        [ExporterHeader("流程状态")]
        public string OrderStatus { get; set; }

        /// <summary>
        /// 单据详情链接
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public string Url { get; set; }

        [ExporterHeader("组织单元2")]
        public string OrgName2 { get; set; }
        [ExporterHeader("组织单元3")]
        public string OrgName3 { get; set; }
        [ExporterHeader("组织单元4")]
        public string OrgName4 { get; set; }
        [ExporterHeader("组织单元5")]
        public string OrgName5 { get; set; }
        [ExporterHeader("组织单元6")]
        public string OrgName6 { get; set; }
        [ExporterHeader("组织单元7")]
        public string OrgName7 { get; set; }

        /// <summary>
        /// 编制说明
        /// </summary>
        [ExporterHeader("编制说明")]
        public string OfficerDesc { get; set; }

        /// <summary>
        /// 岗位名称
        /// </summary>
        [ExporterHeader("岗位名称")]
        public string PostName { get; set; }

        /// <summary>
        /// 岗位职级
        /// </summary>
        [ExporterHeader("岗位职级")]
        public string PostLevel { get; set; }

        /// <summary>
        /// 需求说明
        /// </summary>
        [ExporterHeader("需求说明")]
        public string DemandDesc { get; set; }

        /// <summary>
        /// 人事建议
        /// </summary>
        [ExporterHeader("人事建议")]
        public string Suggestions { get; set; }

        /// <summary>
        /// 审批后抄送人
        /// </summary>
        [ExporterHeader("审批后抄送人")]
        public string CCUserName { get; set; }

        /// <summary>
        /// 一级审批人
        /// </summary>
        [ExporterHeader("一级审批人")]
        public string FirstApprover { get; set; }

        /// <summary>
        /// 二级审批人
        /// </summary>
        [ExporterHeader("二级审批人")]
        public string SecondApprover { get; set; }

        /// <summary>
        /// 三级审批人
        /// </summary>
        [ExporterHeader("三级审批人")]
        public string ThirdApprover { get; set; }

        /// <summary>
        /// 四级审批人
        /// </summary>
        [ExporterHeader("四级审批人")]
        public string FouthApprover { get; set; }

        /// <summary>
        /// 五级审批人
        /// </summary>
        [ExporterHeader("五级审批人")]
        public string FifthApprover { get; set; }

        /// <summary>
        /// 审批结束日期
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public DateTime? OverTime { get; set; }
        [ExporterHeader("审批结束日期")]
        public string OverTimeStr { get; set; }


        [ExporterHeader(IsIgnore = true)]
        public int Order { get; set; }

        [ExporterHeader(IsIgnore = true)]
        public string UserName { get; set; }

        [ExporterHeader(IsIgnore = true)]
        public int InstanceId { get; set; }

        [ExporterHeader(IsIgnore = true)]
        public string Name { get; set; }

        [ExporterHeader(IsIgnore = true)]
        public string GrandNodeId { get; set; }

        [ExporterHeader(IsIgnore = true)]
        public Guid ActivityId { get; set; }
    }

    public class ZPSPXTInput : PagedAndSortedRequestDto
    {
        /// <summary>
        /// 是否查询全部
        /// </summary>
        public bool IsQueryAll { get; set; }
        /// <summary>
        /// 流程实例编号
        /// </summary>
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>
        public string AddUserName { get; set; }

        /// <summary>
        /// 单据状态
        /// </summary>
        public List<string> OrderStatus { get; set; }

        /// <summary>
        /// 制单日期（开始节点）
        /// </summary>
        public DateTime? StartCreationTime { get; set; }

        /// <summary>
        /// 制单日期（结束节点）
        /// </summary>
        public DateTime? EndCreationTime { get; set; }

        /// <summary>
        /// 组织
        /// </summary>
        public string Org { get; set; }
    }
}
